﻿using System;
using System.Collections.Generic;

namespace Sasa.QualityTools.CodeAnalysis.Core.VisualStudio
{
    public interface IProject
    {
        string Name { get; }

        string ProjectPath { get; }

        string TargetDir { get; }

        string AssemblyPath { get; }

        IEnumerable<string> ReferenceAssemblyPaths { get; }

        string ConfigurationPath { get; }

        bool IsSupportedCodeAnalysis { get; }

        string NotSupportedReason { get; }

        IEnumerable<string> DependencyDirectories { get; }

        ISolution Solution { get; }

        IEnumerable<IProjectItem> Items { get; }


        bool Build();

        void Save();

        void AddFromFile(string path);

        IProjectItem AddFromDirectory(string path);

        string GetFilePathFromTypeName(string typeName);
    }
}
